<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <!-- コンテナをロード -->
  <script type="text/javascript" src="../src/container.js" ></script>
</head>
<body>
  <div id="stdout"></div>
  <script type="text/javascript">
var stdout = document.getElementById( "stdout" );

// クラス
function Kitten( ) { }

var c = new container.Container( function( binder ) {

  // プロパティインジェクションの設定
  binder.bind( Kitten ).to( "mii" ).inject( {
    // ハッシュの値がそのままインジェクションされる。
    "name": "mii",
    "getAge": function() { return 1; } ,

    // コンポーネントのインジェクション指定
    "kitten" : container.component("kitten"),
    "kittens" : container.components("kittens"),

    // 関数の戻り値をインジェクションする
    "type": container.provides( function () {
            return "mike";
    })
  });

  binder.bind( Kitten ).to( "kitten"  ).inject( { "name":"tora"});
  binder.bind( Kitten ).to( "kittens" ).inject( { "name":"kuro"});
  binder.bind( Kitten ).to( "kittens" ).inject( { "name":"shiro"});
});

var mii = c.get( "mii" );
stdout.innerHTML += mii.name + "<br/>"; // mii
stdout.innerHTML += mii.getAge() + "<br/>"; // 1
stdout.innerHTML += mii.type + "<br/>"; // mike
stdout.innerHTML += mii.kitten.name + "<br/>"; // tora
stdout.innerHTML += mii.kittens[0].name + "<br/>"; // kuro
stdout.innerHTML += mii.kittens[1].name + "<br/>"; // shiro
  </script>
</body>
</html>